内容与设计思想
按照教材方式建立数据成员变量.设有离散无记忆信源X,P(X).二进制费诺编码为:1.将信源符号按概率从大到小的顺序排列2.将信源分成两组――按两组概率之差为最小分.3.上面一组编码为0,下面一组编码为1,一直分到一组只有一个信源为止.4.将一个信源分组得到的0和1全部连接起来,组成该信源的码字,信源即得到自己的费诺编码.
程序共分为编码,排序,解码三大部分.
首先建立信源的数据存储类
class DATA
,设有公共成员
6
个:
char Xi;//
信源符号,
float PXi;//
信源概率,
char key[11];//
码字,
DATA *next,*qian,*r;//
地址.信源输入采用链表,这样可以输入任意个信源.
1
排序.排序函数
DATA* sort(DATA* pp)
采用递归方式,当递归至最后项为
pp->next==NULL
时结束.函数对输入的
DATA*
型指针进行筛选操作,每次函数运行都从
DATA*
型链表中抽一个最小的出来,当递归运行到最后一个 <